package com.zhuiYun.project.api.userAddress.service;

import com.zhuiYun.project.api.userAddress.entiy.UserAddress;
import com.zhuiYun.project.api.userAddress.model.UserAddressModel;
import com.zhuiYun.project.common.errorCode.CommonException;
import com.zhuiYun.project.common.response.CommonResult;
import com.zhuiYun.project.util.pageUtil.PageRequest;

import java.util.List;

/**
 * @ClassName UserAddressService
 * @Description 收货地址管理
 * @Author 胡亮
 * @Date 2023/04/04 上午 10:09
 **/
public interface UserAddressService {

    /**
    * @Author 胡亮
    * @Description 收货地址管理的新增方法
    * @Date 2023/04/04 上午 10:26
    * @Return [com.zhuiYun.project.api.userAddress.model.UserAddressModel]
    */
    CommonResult saveAddress(UserAddressModel userAddressModel) throws CommonException;

    /**
    * @Author 胡亮
    * @Description 分页查询
    * @Date 2023/04/04 下午 08:34
    * @Return [com.zhuiYun.project.util.pageUtil.PageRequest]
    */
    CommonResult getUserByPage(PageRequest pageRequest,Integer id) throws CommonException;

    /**
    * @Author 胡亮
    * @Description 收货地址删除
    * @Date 2023/04/05 上午 10:24
    * @Return [java.lang.Integer]
    */
    CommonResult delAddressById(Integer id) throws CommonException;

    /**
    * @Author 胡亮
    * @Description 修改收货的修改方法
    * @Date 2023/04/05 上午 10:50
    * @Return [com.zhuiYun.project.api.sysUser.model.SysUserModel]
    */
    CommonResult updateAddress(UserAddressModel userAddressModel) throws CommonException;


    /**
    * @Author 胡亮
    * @Description 修改默认收货地址(默认地址唯一)
    * @Date 2023/04/05 上午 10:51
    * @Return [java.lang.Integer]
    */
    CommonResult updateAddressById(UserAddressModel userAddressModel) throws CommonException;

    /**
    * @Description 根据用户id获取收货地址
    * @Author lzy
    * @Date 2023/4/6 19:23
    * @Return com.zhuiYun.project.common.response.CommonResult
    * @param userId
    */
    CommonResult getAddressByUserId(Integer userId);

    /**
     * @Author gpd
     * @Description  新增用户地址（uniapp新增用户地址）
     * @Date 2023-04-15 上午 11:05
     * @Return com.zhuiYun.project.common.response.CommonResult

     */
    Integer addUserAddress(UserAddress userAddress);

    /**
     * @Author gpd
     * @Description 查询用户的所有收货地址
     * @Date 2023-04-15 上午 11:45
     * @Return com.zhuiYun.project.common.response.CommonResult
     * @param userId
     */
    List<UserAddress> getUserAllAddress(Integer userId);

    /**
     * @Author gpd
     * @Description 查询用户点击的地址详情
     * @Date 2023-04-15 下午 12:15
     * @Return com.zhuiYun.project.common.response.CommonResult
     * @param id
     */
    UserAddress getUserSelectAddress(Integer id);

    /**
     * @Author gpd
     * @Description 修改用户地址 （uniapp 修改地址）
     * @Date 2023-04-15 下午 12:27
     * @Return com.zhuiYun.project.common.response.CommonResult

     */
    Integer updateUserAddress(UserAddress userAddress);
}
